#include "Image.h"

/*
 *--------------------------------------------------------------------------------------
 *       Class:  ImageUtil
 *      Method:  read
 * Description:  Lê uma imagem de um arquivo
 *--------------------------------------------------------------------------------------
 */
Image ImageIO::read(const string& filename, int flags)
{
    Image im = imread(filename, flags);
    if(im.data == NULL)
        throw runtime_error("ERROR: Could not open image " + filename + "\n");
    return im;
}

/*
 *--------------------------------------------------------------------------------------
 *       Class:  ImageUtil
 *      Method:  write
 * Description:  Escreve a imagem em um arquivo
 *--------------------------------------------------------------------------------------
 */
void ImageIO::write(const Image& image, const string& filename, const vint& params)
{
    imwrite(filename, image, params);
}

/*
 *--------------------------------------------------------------------------------------
 *       Class:  ImageUtil
 *      Method:  show
 * Description:  Exibe uma imagem em uma janela
 *--------------------------------------------------------------------------------------
 */
void ImageIO::show(Image& image, const string& window)
{
    namedWindow(window, WINDOW_AUTOSIZE);
    imshow(window, image);
}

/*
 *--------------------------------------------------------------------------------------
 *       Class:  ImageUtil
 *      Method:  waitKey
 * Description:  Espera uma tecla ser pressionada
 *--------------------------------------------------------------------------------------
 */
void ImageIO::wait(int time)
{
    waitKey(time);
}
